package wsht.runtime.expressions.sbql.ast.expressions.visitor;

import wsht.runtime.expressions.sbql.ast.expressions.DotExpression;
import wsht.runtime.expressions.sbql.ast.expressions.NameExpression;
import wsht.runtime.expressions.sbql.ast.expressions.WhereExpression;
import wsht.runtime.expressions.sbql.ast.operators.AllOperator;
import wsht.runtime.expressions.sbql.ast.operators.AndOperator;
import wsht.runtime.expressions.sbql.ast.operators.AnyOperator;
import wsht.runtime.expressions.sbql.ast.operators.AsOperator;
import wsht.runtime.expressions.sbql.ast.operators.AvgOperator;
import wsht.runtime.expressions.sbql.ast.operators.BagConstructor;
import wsht.runtime.expressions.sbql.ast.operators.CommaOperator;
import wsht.runtime.expressions.sbql.ast.operators.CountOperator;
import wsht.runtime.expressions.sbql.ast.operators.DivideBinaryOperator;
import wsht.runtime.expressions.sbql.ast.operators.EqualsOperator;
import wsht.runtime.expressions.sbql.ast.operators.GreaterEqualsOperator;
import wsht.runtime.expressions.sbql.ast.operators.GreaterOperator;
import wsht.runtime.expressions.sbql.ast.operators.GroupAsOperator;
import wsht.runtime.expressions.sbql.ast.operators.IntersectOperator;
import wsht.runtime.expressions.sbql.ast.operators.LessEqualsOperator;
import wsht.runtime.expressions.sbql.ast.operators.LessOperator;
import wsht.runtime.expressions.sbql.ast.operators.MaxOperator;
import wsht.runtime.expressions.sbql.ast.operators.MinOperator;
import wsht.runtime.expressions.sbql.ast.operators.MinusBinaryOperator;
import wsht.runtime.expressions.sbql.ast.operators.MinusOperator;
import wsht.runtime.expressions.sbql.ast.operators.MinusUnaryOperator;
import wsht.runtime.expressions.sbql.ast.operators.ModBinaryOperator;
import wsht.runtime.expressions.sbql.ast.operators.MultiplyBinaryOperator;
import wsht.runtime.expressions.sbql.ast.operators.NotEqualsOperator;
import wsht.runtime.expressions.sbql.ast.operators.OrOperator;
import wsht.runtime.expressions.sbql.ast.operators.PlusBinaryOperator;
import wsht.runtime.expressions.sbql.ast.operators.PlusUnaryOperator;
import wsht.runtime.expressions.sbql.ast.operators.StructConstructor;
import wsht.runtime.expressions.sbql.ast.operators.SumOperator;
import wsht.runtime.expressions.sbql.ast.operators.UnionOperator;
import wsht.runtime.expressions.sbql.ast.operators.wsht.ConcatWithDelimiterFunction;
import wsht.runtime.expressions.sbql.ast.operators.wsht.ConcatFunction;
import wsht.runtime.expressions.sbql.ast.operators.wsht.ExceptFunction;
import wsht.runtime.expressions.sbql.ast.operators.wsht.MostFrequentOccurenceFunction;
import wsht.runtime.expressions.sbql.ast.operators.wsht.GetActualOwnerFunction;
import wsht.runtime.expressions.sbql.ast.operators.wsht.GetBusinessAdministratorsFunction;
import wsht.runtime.expressions.sbql.ast.operators.wsht.GetCountOfFinishedSubTasksFunction;
import wsht.runtime.expressions.sbql.ast.operators.wsht.GetCountOfSubTasksFunction;
import wsht.runtime.expressions.sbql.ast.operators.wsht.GetCountOfSubTasksInStateFunction;
import wsht.runtime.expressions.sbql.ast.operators.wsht.GetCountOfSubTasksWithOutcomeFunction;
import wsht.runtime.expressions.sbql.ast.operators.wsht.GetExcludedOwnersFunction;
import wsht.runtime.expressions.sbql.ast.operators.wsht.GetInputFunction;
import wsht.runtime.expressions.sbql.ast.operators.wsht.GetLogicalPeopleGroupFunction;
import wsht.runtime.expressions.sbql.ast.operators.wsht.GetOutcomeFunction;
import wsht.runtime.expressions.sbql.ast.operators.wsht.GetOutputFunction;
import wsht.runtime.expressions.sbql.ast.operators.wsht.GetPotentialOwnersFunction;
import wsht.runtime.expressions.sbql.ast.operators.wsht.GetSubtaskOutputFunction;
import wsht.runtime.expressions.sbql.ast.operators.wsht.GetSubtaskOutputsFunction;
import wsht.runtime.expressions.sbql.ast.operators.wsht.GetTaskInitiatorFunction;
import wsht.runtime.expressions.sbql.ast.operators.wsht.GetTaskPriorityFunction;
import wsht.runtime.expressions.sbql.ast.operators.wsht.GetTaskStakeholdersFunction;
import wsht.runtime.expressions.sbql.ast.operators.wsht.LeastFrequentOccurenceFunction;
import wsht.runtime.expressions.sbql.ast.operators.wsht.VoteFunction;
import wsht.runtime.expressions.sbql.ast.operators.wsht.VoteOnStringFunction;
import wsht.runtime.expressions.sbql.ast.operators.wsht.WaitForFunction;
import wsht.runtime.expressions.sbql.ast.operators.wsht.WaitUntilFunction;
import wsht.runtime.expressions.sbql.ast.terminals.*;
public interface ASTVisitor {

	public void visitDotExpression(DotExpression expression);
	public void visitWhereExpression(WhereExpression expression);
	public void visitNameExpression(NameExpression expression);
	public void visitStringTerminal(StringTerminal stringTerminal);
	public void visitIntegerTerminal(IntegerTerminal integerTerminal);
	public void visitDoubleTerminal(DoubleTerminal doubleTerminal);
	public void visitBooleanTerminal(BooleanTerminal booleanTerminal);
	public void visitEqualsExpression(EqualsOperator equalsOperator);
	public void visitMinusBinaryExpression(MinusBinaryOperator minusBinaryOperator);
	public void visitPlusBinaryExpression(PlusBinaryOperator plusBinaryOperator);
	public void visitMultiplyBinaryExpression(MultiplyBinaryOperator multiplyBinaryOperator);
	public void visitDivideBinaryExpression(DivideBinaryOperator divideBinaryOperator);
	public void visitNotEqualsExpression(NotEqualsOperator notEqualsOperator);
	public void visitLessExpression(LessOperator lessThanOperator);
	public void visitGreaterExpression(GreaterOperator greaterThanOperator);
	public void visitLessEqualsExpression(LessEqualsOperator lessEqualsOperator);
	public void visitGreaterEqualsExpression(GreaterEqualsOperator greaterEqualsOperator);
	public void visitAndExpression(AndOperator andOperator);
	public void visitOrExpression(OrOperator orOperator);
	public void visitAsExpression(AsOperator asOperator);
	public void visitGroupAsExpression(GroupAsOperator groupAsOperator);
	public void visitCommaExpression(CommaOperator commaOperator);
	public void visitUnionExpression(UnionOperator unionOperator);
	public void visitBagExpression(BagConstructor bagConstructor);
	public void visitStructExpression(StructConstructor structConstructor);
	public void visitAllExpression(AllOperator allOperator);
	public void visitAnyExpression(AnyOperator anyOperator);
	public void visitSumExpression(SumOperator sumOperator);
	public void visitMinExpression(MinOperator minOperator);
	public void visitMaxExpression(MaxOperator maxOperator);
	public void visitCountExpression(CountOperator countOperator);
	public void visitIntersectExpression(IntersectOperator intersectOperator);
	public void visitMinusExpression(MinusOperator minusOperator);
	public void visitMinusUnaryOperator(MinusUnaryOperator minusUnaryOperator);
	public void visitPlusUnaryOperator(PlusUnaryOperator plusUnaryOperator);
	public void visitModBinaryExpression(ModBinaryOperator modBinaryOperator);
	public void visitIdentTerminal(IdentTerminal identTerminal);
	public void visitDateTerminal(DateTerminal dateTerminal);
	public void visitLongTerminal(LongTerminal longTerminal);
	
	//wsht
	public void visitGetActualOwner(GetActualOwnerFunction o);
	public void visitGetBusinessAdministrators(GetBusinessAdministratorsFunction o);
	public void visitGetCountOfFinishedSubTasks(GetCountOfFinishedSubTasksFunction o);
	public void visitGetCountOfSubTasks(GetCountOfSubTasksFunction o);
	public void visitGetCountOfSubTasksInState(GetCountOfSubTasksInStateFunction o);
	public void visitGetCountOfSubTasksWithOutcome(GetCountOfSubTasksWithOutcomeFunction o);
	public void visitGetExcludedOwners(GetExcludedOwnersFunction o);
	public void visitGetInput(GetInputFunction o);
	public void visitGetLogicalPeopleGroup(GetLogicalPeopleGroupFunction o);
	public void visitGetOutcome(GetOutcomeFunction o);
	public void visitGetOutput(GetOutputFunction o);
	public void visitGetPotentialOwners(GetPotentialOwnersFunction o);
	public void visitGetSubtaskOutput(GetSubtaskOutputFunction o);
	public void visitGetSubtaskOutputs(GetSubtaskOutputsFunction o);
	public void visitGetTaskInitiator(GetTaskInitiatorFunction o);
	public void visitGetTaskPriority(GetTaskPriorityFunction o);
	public void visitGetTaskStakeholders(GetTaskStakeholdersFunction o);
	public void visitWaitFor(WaitForFunction o);
	public void visitWaitUntil(WaitUntilFunction o);
	public void visitExcept(ExceptFunction o);
	public void visitVote(VoteFunction o);
	public void visitConcat(ConcatFunction o);
	public void visitConcatWithDelimiter(ConcatWithDelimiterFunction o);
	public void visitLeastFrequentOccurence(LeastFrequentOccurenceFunction o);
	public void visitMostFrequentOccurence(MostFrequentOccurenceFunction o);
	public void visitVoteOnString(VoteOnStringFunction o);
	public void visitAvgExpression(AvgOperator o);
	
	
}
